;:poke56,128:clr ;:open2,8,2,"code,p,w ;:sys36864 ;.opt o2 *= 2061 ;32768 fa =186 jmp los track =2 sektor =3 pos =4 art =5 passw =820 len =180 xmerk =6 chk =182 typ =181 mode =247 old =248 byte =249 flag =250 mask =251 hi .byt 13 .byte "\x93\x9btop secret!\x97 v1 nikolaus m. heusler" .byte "zum verschluesseln von files nh 3.92" .byte "\x11bitte diskette einlegen!" brk wait1 .byt 13 .byte "\x11directory wird gelesen\x11" brk errc .byt 13 .byte "\x9bachtung!\x97 " brk ciaou .byt 13 .byte "\x11vorgang abgeschlossen.\x11" brk break .byt 13 .byte "\x11vorgang abgebrochen.\x11" brk rep .byte "? [j/n/a]\x9d\x9d\x9d\x9d\x9d\x9d\x9d" brk spa .byte " " brk i0 .byte "i0" kr .byte "#" u .byte "u :3 0 " tr .byt 0,0,32 se .byt 0,0 buftxt .byte "b-p 3 0" attng .byt 13 .byte "bitte \x9bkeine " geos .byte "geos-disketten\x97 bearbeiten!" brk type .byte "spuersqgr" txt1 .byt 13 .byte "\x11die datei soll " brk txt2 .byte "codiert werden." txt2a .byt 13 .byte "\x11codewort: " brk txt3 .byt 13 .byte "\x9bwarnung:\x97 das codewort ist zum ent-" .byt 13 .byte "schluesseln der datei unbedingt erfor-" .byt 13 .byte "derlich. bitte \x9bgut merken\x97!" .byt 13 .byte "\x11auch delta-codieren? [j/n]\x9d\x9d\x9d\x9d\x9d" brk txt4 .byt 13 .byte "datei wird " brk txt5 .byte "codiert. bitte warten!\x11" brk pas0 .byt 13 .byte "codewort falsch. bitte neueingabe." brk grbit .byt 128,64,32,16,8,4,2,1 grnot .byt 127,191,223,239,247,251,253,254 control ldx #15 jsr $ffc6 ldx #0 getfek jsr 65508 cmp #13 beq endfek sta fek,x inx bne getfek endfek lda #0 sta fek,x jsr $ffcc lda fek cmp #"0" beq frei jsr zu lda #errc jsr $ab1e lda #fek jsr $ab1e jsr $aad7 lda #-1 frei rts sendcmd sta u+1 txa jsr numbasc stx tr sta tr+1 tya jsr numbasc stx se sta se+1 ldx #15 jsr $ffc9 ldx #0 comout lda u,x jsr $ffd2 inx cpx #12 bcc comout jmp $ffcc numbasc ldx #"0" sec numb1 sbc #10 bcc numb2 inx bcs numb1 numb2 adc #"9"+1 rts read stx track sty sektor lda #"1" jsr sendcmd ldx #3 jsr $ffc6 ldx #0 dirin jsr 65508 sta buf,x inx bne dirin jsr $ffcc jmp control write ldx #15 jsr $ffc9 ldx #0 pntout lda buftxt,x jsr $ffd2 inx cpx #7 bcc pntout jsr $ffcc ldx #3 jsr $ffc9 ldx #0 dirout lda buf,x jsr $ffd2 inx bne dirout jsr $ffcc ldx track ldy sektor lda #"2" jsr sendcmd jmp control de lda #"d" jsr $ffd2 lda #"e" jmp $ffd2 eingabe ldx #0 inlp lda #"\xa4" jsr $ffd2 dec 211 gi stx xmerk jsr 65508 ldx xmerk cmp #13 beq crx cmp #20 beq del cmp #35 bcc gi cmp #96 bcs gi cpx #14 bcs gi jsr $ffd2 sta passw,x inx bne inlp del txa beq gi jsr $ab3f dec 211 dec 211 dex bpl inlp crx jsr $ab3f lda #0 sta passw,x stx len dau dex bmi enddau asl adc passw,x jmp dau enddau sta chk ldx len jmp $aad7 delta stx mode lda #64 and art beq de0 ldy #1 sty flag iny de1 sty pos lda buf,y sta byte ldy #0 de2 lda byte and grbit,y beq de3 lda #1 de3 ldx flag bne de4 ldx mode beq de5 tax beq de6 lda old eor #1 sta old de6 lda old bpl de7 de5 cmp old sta old de7 beq de8 lda grbit,y .byt $2c de8 lda #0 sta mask lda byte and grnot,y ora mask sta byte lda old de4 sta old lsr flag iny cpy #8 bcc de2 ldy pos lda byte sta buf,y iny bne de1 de0 rts los jsr 65409 lda #hi jsr $ab1e lda #12 sta 53280 sta 53281 jsr zu jsr $ffe7 lda #0 sta 198 wk cmp 198 beq wk dec 198 lda #wait1 jsr $ab1e lda #2 ldx #i0 jsr $ffbd ldx fa cpx #8 bcc set8 cpx #12 bcc ok8 set8 ldx #8 ok8 lda #15 tay jsr $ffba jsr $ffc0 jsr control bne clos lda #1 ldx #kr jsr $ffbd ldx fa lda #3 tay jsr $ffba jsr $ffc0 jsr control bne clos ldx #18 ldy #0 jsr read beq freigabe clos lda #0 sta 198 cl cmp 198 beq cl sta 198 bne los freigabe ldx #3 testgeos lda buf+173,x cmp geos,x bne dirloop dex bpl testgeos lda #attng jsr $ab1e jmp clos dirloop ldx buf bne nextrack prgend jsr zu lda #ciaou jmp $ab1e nextrack ldy buf+1 jsr read beq red abort lda #break jsr $ab1e zu jsr $ffcc lda #13 jsr $ffc3 lda #15 jmp $ffc3 red ldy #0 fileloop sty pos lda buf+3,y cmp #18 beq qf lda buf+2,y sta typ eor #128 and #135 beq qf cmp #4 bcc weiter qf jmp fileist weiter jsr $aad7 lda #34 jsr $ffd2 ldx #0 pnam lda buf+5,y cmp #160 beq namfert jsr $ffd2 iny inx cpx #16 bcc pnam namfert lda #34 jsr $ffd2 lda #20 sta 211 lda typ and #7 tax lda type-1,x jsr $ffd2 lda type+2,x jsr $ffd2 lda type+5,x jsr $ffd2 ldy pos lda buf+24,y and #192 sta art bpl nonpt asl bpl norp lda #"%" .byt $2c norp lda #"/" jsr $ffd2 nonpt lda #25 sta 211 lda #rep jsr $ab1e lda #0 sta 198 getjn jsr 65508 cmp #"a" beq nab cmp #"j" beq enter cmp #"n" bne getjn jsr aut jmp fileist nab jsr aut jmp abort aut jsr $ffd2 lda #spa jmp $ab1e fileist lda pos clc adc #16 bcc nstop jmp dirloop nstop tay jmp fileloop enter jsr aut lda art beq code jmp uncode code lda #txt1 jsr $ab1e lda #txt2 jsr $ab1e jsr eingabe txa beq fileist lda #txt3 jsr $ab1e deljn jsr 65508 cmp #"n" beq den cmp #"j" bne deljn pha lda #64 ora art sta art pla den jsr aut jsr $aad7 lda #txt4 jsr $ab1e lda #txt5 jsr $ab1e ldy pos lda art ora #128 sta buf+24,y lda chk sta buf+25,y lda len eor #92 sta buf+26,y jsr write beq passt hilfe jmp clos passt ldy pos lda buf+3,y tax lda buf+4,y tay l4 jsr read bne hilfe ldx #0 ldy #2 l1 lda passw,x bne l2 ldx #0 beq l1 l2 eor buf,y asl adc #0 sta buf,y inx iny bne l1 ldx #0 jsr delta jsr write bne hilfe ldx buf beq l3 ldy buf+1 bpl l4 l3 jmp prgend uncode lda #txt1 jsr $ab1e jsr de lda #txt2 jsr $ab1e reenter jsr eingabe txa bne run jmp fileist run ldy pos lda len eor #92 cmp buf+26,y beq right1 anschlag lda #pas0 jsr $ab1e lda #txt2a jsr $ab1e jmp reenter right1 lda chk cmp buf+25,y bne anschlag lda #txt4 jsr $ab1e jsr de lda #txt5 jsr $ab1e lda #0 ldy pos sta buf+24,y jsr write beq geht help jmp clos geht ldy pos lda buf+3,y tax lda buf+4,y tay m4 jsr read bne help ldx #1 jsr delta ldx #0 ldy #2 m1 lda passw,x bne m2 ldx #0 beq m1 m2 lda buf,y lsr bcc clear ora #128 clear eor passw,x sta buf,y inx iny bne m1 jsr write bne help ldx buf beq m3 ldy buf+1 bpl m4 m3 jmp prgend fek =10000 buf =11000